/**
 * Created by Administrator on 2018/8/28.
 */
var triArray = new Array();
var insideGrid;
var startGrid;
var $$scope;
var $$filter;
var $CertusJsonAjax;
var codeNow = "";
var tempOriginSelect;
var $backlogPersonList;
function openCashView($scope, $route, CertusFormAjax, CertusJsonAjax, $location, $http, $cookies, $routeParams, backlogPersonList, projProportions, $filter) {
    $CertusJsonAjax = CertusJsonAjax
    $scope.trEntity = {};
    $$filter = $filter;
    $backlogPersonList = backlogPersonList;
    $projProportion = projProportions;
    triArray = new Array();
    $scope.trEntity = {
        trCode: "tr-" + new Date().getTime() + Math.floor(Math.random() * 10000),
        items: triArray
    };


    $scope.triPercentDis = true;

    CertusFormAjax.ajax("belongCompanyName", {}, function (res) {
        var companyCode = res.data;
        if (companyCode == "STSJT") {
            $scope.belongCompanyName = "赛特斯集团";
        } else if (companyCode == "STSGD") {
            $scope.belongCompanyName = "赛特斯广东";
        } else if (companyCode == "HFKJ") {
            $scope.belongCompanyName = "浩方科技";
        } else if (companyCode == "HFXX") {
            $scope.belongCompanyName = "浩方信息";
        } else if (companyCode == "STSBJ") {
            $scope.belongCompanyName = "赛特斯北京";
        } else if (companyCode == "STSNJ") {
            $scope.belongCompanyName = "赛特斯南京";
        }
    })


    CertusFormAjax.ajax("listDraftCCBX", {expenseType: 'cashType'}, function (res) {
        if (res.data) {
            $scope.dafts = res.data;
        }
    })
    //打开 草稿记录
    $scope.openDraf = function (a) {
        CertusFormAjax.ajax("openDraf", {trCode: a}, function (res) {
            ;
            if (res.data) {
                $$scope.trEntity = res.data;
                if ($$scope.trEntity.travelCode && $$scope.trEntity.travelCode != "") {
                    $scope.travelCodeChange($$scope.trEntity.travelCode);
                }
                triArray = res.data.items;
                if (triArray) {
                    for (var b in triArray) {
                        if (triArray[b]) {
                            triArray[b].originSurplus = triArray[b].money;
                            for (var g in triArray[b].projectPercent) {
                                triArray[b].originSurplus -= triArray[b].projectPercent[g].money;
                            }
                        }
                    }
                }
                startGrid.exhibitDatas = res.data.items;
                startGrid.refresh(false);
                $("#yourModal").modal('hide');
            }
        })
    }

    //使用 草稿 方法 public

    var nowTriburse;

    function isSaveRetribursementName(element) {
        return element.comName.indexOf(nowTriburse) > -1;
    }

    $scope.$watch("triPercent.money", function (newValue, oldValue, scope) {

        if (newValue) {
            surplusMet(triArray, codeNow, newValue, CertusJsonAjax, $scope);
        } else {
            surplusMet(triArray, codeNow, 0, CertusJsonAjax, $scope);
        }
    });
    //客户 公司 code
    $scope.$watch("trEntity.borrowCode", function (newValue, old, scope) {
        if (old && newValue) {
            if (newValue.indexOf(old) > -1) {
                nowTriburse = newValue;
                scope.triburseSelect = scope.triburseSelect.filter(isSaveRetribursementName);
                if (scope.triburseSelect.length) {
                    if (scope.triburseSelect.length == 1) {
                        // scope.receptionTribursementEntity.borrowCode = scope.dataList.cusCompSelect[0].id;
                        scope.trEntity.borrowCode = scope.triburseSelect[0].comName;
                    }
                }
                return;
            }
        }
        //直接去数据库 查询
        CertusFormAjax.ajax("borrowingEntityList", {borrowCode: newValue}, function (res) {
            scope.triburseSelect = res.data;
            if (scope.triburseSelect.length) {
                if (scope.triburseSelect.length == 1) {
                    // scope.receptionTribursementEntity.customUnitId = scope.dataList.cusCompSelect[0].id;
                    scope.trEntity.borrowCode = scope.triburseSelect[0].comName;
                }
            }
        })
    })

    $$scope = $scope;

    var picker3 = $('#dateTimeop').datetimepicker({
        format: 'YYYY-MM-DD',
        locale: moment.locale('zh-cn')
    }).on('dp.hide', function (e) {
        var result = new moment(e.date).format('YYYY-MM-DD');
        if (result && !angular.isUndefined(result)) {
            $scope.trItem.startDate = result;
            $scope.$apply();
        }
    })

    var picker4 = $('#dateTimeop1').datetimepicker({
        format: 'YYYY-MM-DD',
        locale: moment.locale('zh-cn')
    }).on('dp.hide', function (e) {
        var result = new moment(e.date).format('YYYY-MM-DD');
        if (result && !angular.isUndefined(result)) {
            $scope.trItem.endDate = result;
            $scope.$apply();
        }
    })

    //报销 条目
    $scope.ccClassSelect = [
        {name: "市内交通金额", code: "indoorTraffic"},
        {name: "餐费", code: "lunchAmount"},
        {name: "通讯费", code: "communicationFee"},
        {name: "电脑补贴", code: "electronicFee"},
        {name: "礼品购买", code: "present"},
        {name: "证书使用费", code: "certificateSubsides"},
        // {name: "----------------------------", code: ""},
        {name: "外部服务费（使用外部服务）", code: "externalServiceFee"},
        {name: "外部咨询费（使用咨询服务）", code: "externalConsultingFee"},
        {name: "外部培训费（使用培训服务）", code: "externalFee"},
        {name: "外部聘用费用（使用聘用费用）", code: "externalCost"},
        // {name: "----------------------------", code: ""},
        {name: "低值易耗品费（行政相关费用）", code: "consumable"},
        {name: "车辆费（行政相关费用）", code: "carFee"},
        {name: "水电费（行政相关费用）", code: "utilities"},
        {name: "物管费（行政相关费用）", code: "propertyManagementFee"},
        {name: "房屋租赁费（行政相关费用）", code: "houseRent"},
        {name: "其他租赁费（行政相关费用）", code: "elseRent"},
        // {name: "----------------------------", code: ""},
        {name: "办公费用", code: "officeExpenses"},
    ]

    $scope.ccCompanySelect = [
        {name: "赛特斯上海", code: "STSSH"},
        {name: "赛特斯南京", code: "STSNJ"},
        {name: "赛特斯广州", code: "STSGD"},
        {name: "赛特斯北京", code: "STSBJ"},
    ]

    //选取 可以 直接 使用 的出差单号
    CertusFormAjax.ajax("availablePolicyNumber", {}, function (res) {
        if (res.data) {
            $scope.availablePolicyNumberSelect = res.data;
        }
    })
    // $scope.travelCodeChange = function (a) {
    //     if (a) {
    //         for(var j in triArray){
    //             triArray[j].projectPercent = null;
    //         }
    //         //初始化可以选取的 项目编号
    //
    //         $scope.triPercentDis = false;
    //         return;
    //     }
    //     $scope.triPercentDis = true;
    //
    // }

    //初始化员工所属 项目
    CertusFormAjax.ajax("relatedProjNumbeer", null, function (res) {
        if (res.data) {
            $scope.availableProjNumberSelect = res.data;
            $scope.triPercentDis = false;
            tempOriginSelect = res.data;
        }
    })

    $scope.addItem = function () {

        $scope.trItem = {};
        $("#dateTime1").val("");
        $("#dateTime2").val("");
        $(".afrinfo").show();
    }

    $scope.saveDraftCCBX = function () {
        $scope.trEntity.expenseType = 'cashType';
        CertusJsonAjax.ajax("saveDraftCCBX", $scope.trEntity, function (res) {
            if (res.data) {
                if (res.data == "success") {
                    window.history.back();
                }
            }
        })
    }

    $scope.startCCBXLc = function () {
        $scope.trEntity.expenseType = 'cashType';
        if ($scope.trEntity.chargeAgainest || $scope.trEntity.borrowCode) {
            if ($$scope.trEntity.chargeAgainest && $$scope.trEntity.borrowCode) {

            } else {
                layer.msg("请补全冲销信息");
                return;
            }
        }
        CertusJsonAjax.ajax("startCCBXLc", $scope.trEntity, function (res) {
            if (res.data) {
                if (res.data.succed == "success") {
                    nextApprovalManView(res.data.tip);
                    window.history.back();
                    return;
                }
                layer.msg(res.data.succed);
            }
        })
    }


    $scope.disDraft = function () {
        $("#yourModal").modal('show');
    }

    $scope.itemSubmit = function () {

        if (certusValidateNotnullPolyfill()) {
            var changeTr = {};

            $scope.trItem.trCompanyName = $scope.belongCompanyName;

            for (var k in $scope.ccClassSelect) {
                if ($scope.ccClassSelect[k].code == $scope.trItem.triClassCode) {
                    $scope.trItem.triClassName = $scope.ccClassSelect[k].name;
                    // if (
                    //     $$scope.trItem.triClassCode == 'utilities' ||
                    //     $$scope.trItem.triClassCode == 'propertyManagementFee' ||
                    //     $$scope.trItem.triClassCode == 'houseRent' ||
                    //     $$scope.trItem.triClassCode == 'elseRent' ||
                    //     $$scope.trItem.triClassCode == 'electronicFee' ||
                    //     $$scope.trItem.triClassCode == 'externalServiceFee' ||
                    //     $$scope.trItem.triClassCode == 'externalConsultingFee' ||
                    //     $$scope.trItem.triClassCode == 'externalCost' ||
                    //     $$scope.trItem.triClassCode == 'certificateSubsides' ||
                    //     $$scope.trItem.triClassCode == 'externalFee' ||
                    //     $$scope.trItem.triClassCode == 'present') {
                    //     $$scope.trItem.triClassCode = 'elseFee'
                    // }
                }
            }
            if ($scope.trItem.projectPercent) {
                $scope.trItem.originSurplus = $scope.trItem.money;
                for (var i in $scope.trItem.projectPercent) {
                    $scope.trItem.originSurplus -= $scope.trItem.projectPercent[i].money;
                }
            }
            if ($scope.trItem.originSurplus < 0) {
                layer.msg("目前项目分配钱，已经超过现有的总和");
                return;
            }
            $scope.trItem.trCode = $scope.trEntity.trCode;
            $scope.trItem.triCode = "tri-" + new Date().getTime() + Math.floor(Math.random() * 10000);
            codeNow = $scope.trItem.triCode;
            triArray = triArray.filter(isDifferent);
            triArray.push($scope.trItem);
            //算出总金额
            $scope.trEntity.totalAmount = parseFloat(parseFloat(0.00).toFixed(2));
            for (var b in triArray) {

                $scope.trEntity.totalAmount += parseFloat(parseFloat(triArray[b].money).toFixed(2));
            }
            startGrid.exhibitDatas = triArray;
            $$scope.trEntity.items = triArray;
            startGrid.refresh(false);

            $(".afrinfo").hide();
        }
    }


    $scope.closeAddItem = function () {
        $(".afrinfo").hide();
    }

    startGrid = $.fn.dlshouwen.grid.init(afrOptionOpen);
    startGrid.exhibitDatas = triArray;


// $$scope.triPercentChange = function (a) {
//     if (a) {
//         for (var i in triArray) {
//             if (triArray[i].triCode == codeNow) {
//                 var number = parseFloat(triArray[i].originSurplus) - parseFloat(a);
//                 $$scope.triPercent
//             }
//         }
//         $$scope.triPercent.surplus = number;
//         return
//     }
//     $$scope.triPercent.surplus = $$scope.originSurplus


    $scope.triPercent = {};

    $scope.editPercent = function (projId) {

        for (var i in triArray) {
            if (triArray[i].triCode == codeNow) {
                for (var j in triArray[i].projectPercent) {
                    $$scope.triPercent = triArray[i].projectPercent[j];
                    $$scope.triPercent.projId = projId + "";
                    // triArray[i].projectPercent = triArray[i].projectPercent.filter(isDiffPercent);
                    surplusMet(triArray, codeNow, 0, CertusJsonAjax, $scope);
                }

            }
        }
        $("#myModal").modal('hide');
        $(".haddpro").show();
    }

    $scope.delPercent =
        function (projId) {
            // layer.confirm('确认删除此数据？', {
            //     btn: ['确认', '取消'] //按钮
            // }, function () {
            for (var j in triArray) {
                if (triArray[j].triCode == codeNow) {
                    for (var i in triArray[j].projectPercent) {
                        if (triArray[j].projectPercent[i].projId == projId) {
                            projIdNow == projId;
                            // triArray[j].originSurplus += parseFloat(triArray[j].projectPercent[i].money).toFixed(2);
                            triArray[j].projectPercent = triArray[j].projectPercent.filter(isDiffPercent);
                            $$scope.nowprojectPercents = triArray[j].projectPercent;
                            return;
                        }
                    }
                }
            }
            //     layer.msg('删除成功');
            // });

        }
}
var nowProjName;
// 报销费用明细
var afrColumns = [{
    id: 'trCompanyName',
    title: '报销主体公司',
    width: 150,
    type: 'string',
    columnClass: 'text-center',
}, {
    id: 'triClassName',
    title: '报销类目',
    width: 150,
    type: 'string',
    columnClass: 'text-center',
}, {
    id: 'money',
    title: '金额',
    type: 'string',
    width: 100,
    columnClass: 'text-center',
    resolution: function (value, record, column, grid, dataNo, columnNo) {
        var content = '￥' + value + '元';
        return content;
    }
}, {
    id: 'startDate',
    title: '开始日期',
    type: 'string',
    width: 100,
    columnClass: 'text-center',
    hideType: 'lg|md|sm|xs',
    resolution: function (value, record, column, grid, dataNo, columnNo) {
        var date = new Date(record.startDate);
        var content = $.fn.dlshouwen.grid.tools.dateFormat(date, "yyyy-MM-dd");
        return content;
    }
}, {
    id: 'endDate',
    title: '结束日期',
    type: 'string',
    width: 150,
    columnClass: 'text-center',
    hideType: 'lg|md|sm|xs',
    resolution: function (value, record, column, grid, dataNo, columnNo) {
        var date = new Date(record.endDate);
        var content = $.fn.dlshouwen.grid.tools.dateFormat(date, "yyyy-MM-dd");
        return content;
    }
}, {
    id: 'startAddr',
    title: '开始地点',
    type: 'string',
    width: 150,
    columnClass: 'text-center',
    hideType: 'lg|md|sm|xs',
}, {
    id: 'endAddr',
    title: '结束地点',
    type: 'string',
    width: 150,
    columnClass: 'text-center',
    hideType: 'lg|md|sm|xs',
}, {
    id: 'triNum',
    title: '原始单据数量',
    type: 'string',
    width: 100,
    columnClass: 'text-center',
    hideType: 'lg|md|sm|xs',
}, {
    id: 'trInstruction',
    title: '费用报销明细说明',
    type: 'string',
    columnClass: 'text-left',
}, {
    id: 'operation',
    title: '操作',
    width: 280,
    type: 'string',
    columnClass: 'text-center',
    resolution: function (value, record, column, grid, dataNo, columnNo) {
        var content = '';
        content += '<button class="btn btn-xs btn-success" onclick="addPro(\'' + record.triCode + '\');"><i class="icon-plus"></i>  项目占比</button>';
        content += '  ';
        content += '<button class="btn btn-xs btn-primary" onclick="disMyModal(\'' + record.triCode + '\');"><i class="icon-eye-open"></i>  项目占比</button>';
        content += '  ';
        content += '<button class="btn btn-xs btn-info" onclick="editCC(\'' + record.triCode + '\');"><i class="fa fa-edit"></i>  编辑</button>';
        content += '  ';
        content += '<button class="btn btn-xs btn-danger" onclick="delTriItem(\'' + record.triCode + '\');"><i class="fa fa-trash-o"></i>  删除</button>';
        return content;
    }
}];


function delTriItem(triCode) {
    layer.confirm('确认删除此数据？', {
        btn: ['确认', '取消'] //按钮
    }, function () {

        codeNow = triCode;
        for (var i in triArray) {
            if (triArray[i].triCode == triCode) {
                triArray = triArray.filter(isDifferent);
                startGrid.exhibitDatas = triArray;
                startGrid.refresh(false);
                $$scope.trEntity.items = triArray;

                $$scope.trEntity.totalAmount = parseFloat(parseFloat(0.00).toFixed(2));
                for (var b in triArray) {
                    $$scope.trEntity.totalAmount += parseFloat(parseFloat(triArray[b].money).toFixed(2));
                }
                $$scope.$apply();
            }
        }
        layer.msg('删除成功');
    });
}


function disMyModal(triCode) {
    for (var i in triArray) {
        if (triArray[i].triCode == triCode) {
            $$scope.trItem = triArray[i];
            $$scope.nowprojectPercents = {};
            if (triArray[i].projectPercent) {
                codeNow = triCode;
                nowprojectPercent = triArray[i].projectPercent;
                $$scope.nowprojectPercents = nowprojectPercent;
                // $(".haddpro").show();
            }
        }
    }
    $$scope.$apply();
    $("#myModal").modal('show');
}

function isDifferentSelect(element) {
    return element.code != projIdNow;
}
var nowprojectPercent;

function addPro(triCode) {
    ;
    for (var i in triArray) {
        if (triArray[i].triCode == triCode) {
            codeNow = triCode;
            $$scope.triPercent = {};
            //初始化

            surplusMet(triArray, i, 0, $CertusJsonAjax, $$scope);
            if (!triArray[i].projectPercent) {
                triArray[i].projectPercent = new Array();
                $$scope.availableProjNumberSelect = tempOriginSelect;
            } else {
                var tempSelect = tempOriginSelect;
                for (var j in triArray[i].projectPercent) {
                    // surplusMet(triArray,i,0,$CertusJsonAjax,$$scope);
                    projIdNow = triArray[i].projectPercent[j].projId;
                    if (tempOriginSelect) {
                        tempSelect = tempSelect.filter(isDifferentSelect);
                    }
                }
                $$scope.availableProjNumberSelect = tempSelect;
            }
            // $$scope.triPercent.surplus = triArray[i].originSurplus;
            // $$scope.triPercent.money = null;
            nowprojectPercent = triArray[i].projectPercent
            $$scope.$apply();
            surplusMet(triArray, triCode, 0, $CertusJsonAjax, $$scope);
            var data = {
                triPercent: $$scope.triPercent,
                userProjSelect2: $$scope.userProjSelect2
            }
            $(".haddpro").show();
            $('#projNameId').val("")
            // projProportion($$scope,triArray,$CertusJsonAjax,codeNow);
            return;
        }
    }
}

function haddpro() {
    $(".haddpro").hide();
}


function editCC(triCode) {
    for (var i in triArray) {
        if (triArray[i].triCode == triCode) {
            $$scope.trItem = triArray[i];
            // $$scope.trItem.startDate = $$filter("date")($$scope.trItem.startDate, "yyyy-MM-dd");
            // $$scope.trItem.endDate = $$filter("date")($$scope.trItem.endDate, "yyyy-MM-dd");
        }
    }
    $(".afrinfo").show();
    $$scope.$apply();
}

// $("dateTimeop").onchange = function dateChange1(){
//
//     $$scope.startDate = $("#dateTime1").val();
//     $$scope.$apply();
// }
//
// function dateChange2(){
//
//     $$scope.endDate = $("#dateTime1").val();
//     $$scope.$apply();
// }

function isDifferent(element) {
    return element.triCode != codeNow;
}

var afrOptionOpen = {
    lang: 'zh-cn',
    ajaxLoad: false,
    extraWidth: 20,
    // loadURL:'url',
    exportFileName: '报销费用明细',
    datas: [],
    columns: afrColumns,
    gridContainer: 'afrContainerOpen',
    toolbarContainer: 'afrToolBarContainerOpen',
    tools: '',
    pageSize: 10,
    pageSizeLimit: [10, 15, 20]
};

function isDiffPercent(element) {
    return element.projId != projIdNow;
}

var projIdNow;
function isSaveProjName(element) {
    return element.projName.indexOf(nowProjName) > -1;
}
function isDifferentPercent(element) {
    return element.projId != projIdNow;
}
function percentSubmit(a) {
    a = $$scope.triPercent.projId
    projIdNow = $$scope.triPercent.projId;
    //如果 目前的项目名超过 俩个 则 提示
    ;
    nowProjName = $$scope.triPercent.projName;
    if (!$$scope.triPercent.projId) {
        layer.msg("项目名称不正确");
        return;
    }
    for (var ii in $$scope.availableProjNumberSelect) {
        if ($$scope.availableProjNumberSelect[ii].code == a) {
            $$scope.triPercent.projName = $$scope.availableProjNumberSelect[ii].name
        }
    }
    if (nowprojectPercent) {
        for (var i in nowprojectPercent) {
            if (nowprojectPercent[i].projId == projIdNow) {
                for (var h in triArray) {
                    if (triArray[h].triCode == codeNow) {
                        triArray[h].originSurplus += nowprojectPercent[i].money;
                    }
                }
                nowprojectPercent[i] = $$scope.triPercent;
            }
        }
    }
    nowprojectPercent = nowprojectPercent.filter(isDifferentPercent);
    nowprojectPercent.push($$scope.triPercent);
    for (var h in triArray) {
        if (triArray[h].triCode == codeNow) {
            triArray[h].projectPercent = nowprojectPercent;
        }
    }
    surplusMet(triArray, codeNow, 0, $CertusJsonAjax, $$scope);
    // $$scope.ok();
    $(".haddpro").hide();
}
